﻿2026-06-22T02:09:36.1341476Z ##[group]Run cargo nextest run --workspace --no-fail-fast -E '(package(spt-daemon) & kind(test) & binary(/^(attach|brain_swap|broker|budget|daemon_e2e|daemon_lifecycle_real_brain|digest|dispatch|driven_by_selfheal|handoff|idempotent|inject_control_wedge|input_ack_deadlock|resume|shellchan|two_origin_spanning|twohost)$/)) | (package(spt) & kind(test) & binary(/^(attach_wedge_e2e|bind_cwd_project_e2e|brain_respawn_rename|brain_restart_psyche_dup_e2e|brain_split|brain_survive|dummy_harness_e2e|gateway_owner_shell_e2e|job_escape_e2e|livehost_bootgate_e2e|livehost_bootrace_e2e|livehost_nonresident_e2e|livehost_psyche_fail_e2e|n1_pairing|oneliner_e2e|resume_template_e2e|unhost_psyche_reap_e2e)$/)) | (package(spt-term) & kind(test))'
2026-06-22T02:09:36.1345242Z [36;1mcargo nextest run --workspace --no-fail-fast -E '(package(spt-daemon) & kind(test) & binary(/^(attach|brain_swap|broker|budget|daemon_e2e|daemon_lifecycle_real_brain|digest|dispatch|driven_by_selfheal|handoff|idempotent|inject_control_wedge|input_ack_deadlock|resume|shellchan|two_origin_spanning|twohost)$/)) | (package(spt) & kind(test) & binary(/^(attach_wedge_e2e|bind_cwd_project_e2e|brain_respawn_rename|brain_restart_psyche_dup_e2e|brain_split|brain_survive|dummy_harness_e2e|gateway_owner_shell_e2e|job_escape_e2e|livehost_bootgate_e2e|livehost_bootrace_e2e|livehost_nonresident_e2e|livehost_psyche_fail_e2e|n1_pairing|oneliner_e2e|resume_template_e2e|unhost_psyche_reap_e2e)$/)) | (package(spt-term) & kind(test))'[0m
2026-06-22T02:09:36.1540271Z shell: /usr/bin/bash -e {0}
2026-06-22T02:09:36.1540513Z env:
2026-06-22T02:09:36.1540704Z   RUSTFLAGS: -C link-arg=-fuse-ld=mold
2026-06-22T02:09:36.1540943Z ##[endgroup]
2026-06-22T02:09:37.2850315Z     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.41s
2026-06-22T02:09:37.4012494Z ────────────
2026-06-22T02:09:37.4012899Z  Nextest run ID 36011230-342b-4ef6-b08a-009f453e3fa0 with nextest profile: default
2026-06-22T02:09:37.4013305Z     Starting 90 tests across 39 binaries (48 binaries skipped)
2026-06-22T02:09:52.1629445Z         PASS [  14.761s] ( 1/90) spt::attach_wedge_e2e attach_wedge_dead_child_plus_dropped_pump_does_not_wedge_the_broker
2026-06-22T02:10:01.9068277Z         PASS [   9.744s] ( 2/90) spt::bind_cwd_project_e2e endpoint_run_records_cwd_and_appears_under_its_project
2026-06-22T02:10:43.5270878Z         PASS [  41.620s] ( 3/90) spt::brain_respawn_rename brain_respawns_onto_applied_bytes_after_in_place_rename
2026-06-22T02:11:11.2988526Z         PASS [  27.772s] ( 4/90) spt::brain_restart_psyche_dup_e2e brain_restart_leaves_exactly_one_psyche_per_endpoint
2026-06-22T02:11:33.6106450Z         PASS [  22.312s] ( 5/90) spt::brain_split broker_survives_brain_kill_and_respawns_it
2026-06-22T02:11:56.0753887Z         PASS [  22.465s] ( 6/90) spt::brain_split seed_anchor_survives_brain_cycle
2026-06-22T02:12:33.9060484Z         PASS [  37.831s] ( 7/90) spt::brain_survive pty_and_quic_survive_brain_process_restart_onto_swapped_binary
2026-06-22T02:12:48.9795915Z         PASS [  15.073s] ( 8/90) spt::dummy_harness_e2e endpoint_run_attach_awaits_online_before_attaching
2026-06-22T02:12:59.5499530Z         PASS [  10.570s] ( 9/90) spt::dummy_harness_e2e endpoint_run_brings_up_a_long_lived_dummy_harness_and_rc_attaches
2026-06-22T02:12:59.8537340Z         PASS [   0.304s] (10/90) spt::gateway_owner_shell_e2e gateway_typed_owner_owns_a_shell_on_every_path_keyed_on_id
2026-06-22T02:12:59.8584673Z         PASS [   0.005s] (11/90) spt::job_escape_e2e daemon_survives_terminal_close_via_session_detachment
2026-06-22T02:13:17.3843432Z         PASS [  17.525s] (12/90) spt::livehost_bootgate_e2e cold_start_does_not_revive_a_sessionless_online_latched_perch
2026-06-22T02:13:45.0402429Z         PASS [  27.657s] (13/90) spt::livehost_bootrace_e2e netless_online_live_agent_is_hosted_by_the_real_daemon_brain
2026-06-22T02:14:04.5955317Z         PASS [  19.555s] (14/90) spt::livehost_nonresident_e2e online_live_agent_with_fast_exiting_psyche_stamps_parent_and_clears_phantom
2026-06-22T02:14:18.8468271Z         PASS [  14.251s] (15/90) spt::livehost_psyche_fail_e2e online_live_agent_with_missing_psyche_binary_stamps_a_harness_reachable_error
2026-06-22T02:14:18.8508146Z         PASS [   0.004s] (16/90) spt::n1_pairing new_brain_serves_against_old_broker
2026-06-22T02:14:18.8551735Z         PASS [   0.004s] (17/90) spt::oneliner_e2e at_logon_task_launches_daemon_in_background_not_foreground
2026-06-22T02:14:18.8586922Z         PASS [   0.003s] (18/90) spt::oneliner_e2e install_script_against_staged_release
2026-06-22T02:14:33.5119802Z         PASS [  14.653s] (19/90) spt::resume_template_e2e endpoint_run_resume_selects_resume_template_in_recorded_cwd
2026-06-22T02:14:53.1038679Z         PASS [  19.592s] (20/90) spt::unhost_psyche_reap_e2e endpoint_stop_reaps_the_hosted_psyche_process
2026-06-22T02:14:53.2552032Z         PASS [   0.151s] (21/90) spt-daemon::attach attach_registers_remote_drive_detection
2026-06-22T02:14:53.3322740Z         PASS [   0.077s] (22/90) spt-daemon::attach attach_survives_target_brain_restart_exactly_once
2026-06-22T02:14:53.3604505Z         PASS [   0.028s] (23/90) spt-daemon::attach broker_spawns_the_pty_child_in_the_requested_cwd
2026-06-22T02:14:53.3960508Z         PASS [   0.036s] (24/90) spt-daemon::attach controller_restart_with_viewer_no_displace_and_viewer_survives
2026-06-22T02:14:53.4285114Z         PASS [   0.032s] (25/90) spt-daemon::attach controller_viewer_matrix_and_loud_take
2026-06-22T02:14:53.4374406Z         PASS [   0.009s] (26/90) spt-daemon::attach handoff_seeds_resume_cursor_and_resubscribes_for_resume
2026-06-22T02:14:53.4869185Z         PASS [   0.049s] (27/90) spt-daemon::attach local_attach_via_loopback_conn_rides_the_same_pump
2026-06-22T02:14:53.5271438Z         PASS [   0.040s] (28/90) spt-daemon::attach loopback_attach_to_a_prepopulated_ring_delivers_without_deadlock
2026-06-22T02:14:53.5592734Z         PASS [   0.032s] (29/90) spt-daemon::attach loopback_self_dial_is_refused_local_uses_fallback_transport
2026-06-22T02:14:53.5689488Z         PASS [   0.010s] (30/90) spt-daemon::attach re_serve_resets_resume_cursor_after_a_pre_attached_consume
2026-06-22T02:14:53.6458535Z         PASS [   0.077s] (31/90) spt-daemon::attach remote_attach_drives_a_real_pty_cross_daemon
2026-06-22T02:14:53.7338846Z         PASS [   0.088s] (32/90) spt-daemon::attach resize_is_controller_exclusive
2026-06-22T02:14:53.7820316Z         PASS [   0.048s] (33/90) spt-daemon::attach same_origin_re_subscribe_does_not_displace
2026-06-22T02:14:53.8788536Z         PASS [   0.097s] (34/90) spt-daemon::attach spt_hosted_bringup_then_cross_node_attach_drives_the_pty
2026-06-22T02:14:55.7849662Z         PASS [   1.906s] (35/90) spt-daemon::attach wedged_viewer_does_not_stall_controller
2026-06-22T02:14:55.8203339Z         PASS [   0.035s] (36/90) spt-daemon::brain_swap brain_only_update_swaps_logic_with_zero_endpoint_interruption
2026-06-22T02:14:55.8407071Z         PASS [   0.020s] (37/90) spt-daemon::broker ack_false_input_suppresses_applied_frame
2026-06-22T02:14:55.8508063Z         PASS [   0.010s] (38/90) spt-daemon::broker broker_hosts_pty_child_streams_output_and_accepts_input
2026-06-22T02:14:55.8617247Z         PASS [   0.011s] (39/90) spt-daemon::broker controller_writer_reorder_consumer_view_stays_monotonic_and_session_live
2026-06-22T02:14:55.8716280Z         PASS [   0.010s] (40/90) spt-daemon::broker dead_session_subscribe_does_not_hang
2026-06-22T02:14:55.8814494Z         PASS [   0.010s] (41/90) spt-daemon::broker endpoint_keyed_inject_reaches_hosted_pty
2026-06-22T02:14:56.0091529Z         PASS [   0.128s] (42/90) spt-daemon::broker exactly_once_preserved_on_no_ack_path
2026-06-22T02:14:56.0194393Z         PASS [   0.010s] (43/90) spt-daemon::broker spawn_env_reaches_child
2026-06-22T02:14:56.0378933Z         PASS [   0.018s] (44/90) spt-daemon::broker wall_b_endpoint_run_env_then_send_reaches_pty
2026-06-22T02:14:56.0419852Z         PASS [   0.004s] (45/90) spt-daemon::budget measure_dormant_seat_budget
2026-06-22T02:14:56.6775063Z         PASS [   0.635s] (46/90) spt-daemon::daemon_e2e daemon_hosts_lifecycle_and_survives_brain_restart
2026-06-22T02:15:08.9361355Z         PASS [  12.259s] (47/90) spt-daemon::daemon_lifecycle_real_brain real_brain_process_hosts_the_psyche_for_an_online_live_endpoint
2026-06-22T02:15:09.0651870Z         PASS [   0.129s] (48/90) spt-daemon::digest harness_hosted_digest_projects_and_pushes_deltas
2026-06-22T02:15:09.0791207Z         PASS [   0.014s] (49/90) spt-daemon::dispatch classify_routes_a_node_label_feed_to_registry
2026-06-22T02:15:09.2497874Z         PASS [   0.171s] (50/90) spt-daemon::dispatch dispatcher_applies_a_notif_feed_undriven
2026-06-22T02:15:09.3895017Z         PASS [   0.140s] (51/90) spt-daemon::dispatch dispatcher_funnels_wan_messages_undriven
2026-06-22T02:15:09.5520709Z         PASS [   0.162s] (52/90) spt-daemon::dispatch dispatcher_serves_a_cross_node_shell_link
2026-06-22T02:15:09.6370254Z         PASS [   0.085s] (53/90) spt-daemon::dispatch dispatcher_serves_a_file_fetch_undriven
2026-06-22T02:15:09.7501865Z         PASS [   0.113s] (54/90) spt-daemon::dispatch dispatcher_serves_a_remote_drive_attach_undriven
2026-06-22T02:15:09.9059839Z         PASS [   0.156s] (55/90) spt-daemon::dispatch dispatcher_serves_a_subnet_serve_probe
2026-06-22T02:15:10.2665383Z         PASS [   0.360s] (56/90) spt-daemon::dispatch dispatcher_serves_a_sync_pull_undriven
2026-06-22T02:15:10.3671359Z         PASS [   0.101s] (57/90) spt-daemon::dispatch dispatcher_serves_an_update_pull_undriven
2026-06-22T02:15:10.5709618Z         PASS [   0.204s] (58/90) spt-daemon::dispatch dispatcher_surfaces_a_remote_won_notif_at_the_winning_node
2026-06-22T02:15:10.6824472Z         PASS [   0.111s] (59/90) spt-daemon::dispatch dispatcher_survives_an_unknown_stream
2026-06-22T02:15:10.9920416Z         PASS [   0.309s] (60/90) spt-daemon::driven_by_selfheal gap_a_live_session_controller_by_is_ambiguous_so_reconcile_must_not_clear
2026-06-22T02:15:10.9980252Z         PASS [   0.006s] (61/90) spt-daemon::driven_by_selfheal gap_b_sessionless_perch_reconcile_offlines_and_clears_driven_by
2026-06-22T02:15:11.0261228Z         PASS [   0.028s] (62/90) spt-daemon::handoff brain_restart_survives_gaplessly_with_fresh_gen_start
2026-06-22T02:15:11.0485716Z         PASS [   0.022s] (63/90) spt-daemon::idempotent pty_writes_are_exactly_once_across_brain_crashes
2026-06-22T02:15:14.0948320Z         PASS [   3.046s] (64/90) spt-daemon::inject_control_wedge a_backed_up_controller_does_not_wedge_the_session
2026-06-22T02:15:17.5447178Z         PASS [   3.450s] (65/90) spt-daemon::inject_control_wedge a_journaled_input_wedge_does_not_starve_a_concurrent_rc_attach
2026-06-22T02:15:17.7756892Z         PASS [   0.231s] (66/90) spt-daemon::inject_control_wedge g1_choreography_happy_path_payload_reaches_pty_and_controller_keeps_control
2026-06-22T02:15:18.2101202Z         PASS [   0.434s] (67/90) spt-daemon::inject_control_wedge g2_no_commit_deadline_faults_binary_and_does_not_wedge_controller_input
2026-06-22T02:15:18.7455767Z         PASS [   0.535s] (68/90) spt-daemon::inject_control_wedge g3_content_free_ping_never_duplicates_operator_keystrokes_into_binary
2026-06-22T02:15:18.8528295Z         PASS [   0.107s] (69/90) spt-daemon::inject_control_wedge g4_translation_child_is_reaped_no_zombie_after_session_down
2026-06-22T02:15:19.1629573Z         PASS [   0.310s] (70/90) spt-daemon::inject_control_wedge injecting_a_large_payload_into_a_stdin_ignoring_child
2026-06-22T02:15:22.1015449Z         PASS [   2.938s] (71/90) spt-daemon::inject_control_wedge p0_paste_wedge_parked_write_does_not_starve_attach_or_wedge_broker
2026-06-22T02:15:22.4372725Z         PASS [   0.336s] (72/90) spt-daemon::inject_control_wedge w5_a1_locally_driven_session_reports_controller_by_none
2026-06-22T02:15:26.5126161Z         FAIL [   4.074s] (73/90) spt-daemon::inject_control_wedge w5_a2_abandoned_remote_controller_conn_close_eviction_is_platform_divergent
2026-06-22T02:15:26.5127156Z   stdout ───
2026-06-22T02:15:26.5127300Z 
2026-06-22T02:15:26.5127433Z     running 1 test
2026-06-22T02:15:26.5127833Z     test w5_a2_abandoned_remote_controller_conn_close_eviction_is_platform_divergent ... FAILED
2026-06-22T02:15:26.5128533Z 
2026-06-22T02:15:26.5128639Z     failures:
2026-06-22T02:15:26.5128786Z 
2026-06-22T02:15:26.5128886Z     failures:
2026-06-22T02:15:26.5129325Z         w5_a2_abandoned_remote_controller_conn_close_eviction_is_platform_divergent
2026-06-22T02:15:26.5129645Z 
2026-06-22T02:15:26.5129912Z     test result: FAILED. 0 passed; 1 failed; 0 ignored; 0 measured; 9 filtered out; finished in 4.07s
2026-06-22T02:15:26.5130279Z 
2026-06-22T02:15:26.5130420Z   stderr ───
2026-06-22T02:15:26.5130648Z     PUMP_IPC_READER: spawned
2026-06-22T02:15:26.5130910Z     PUMP_IPC_READER: spawned
2026-06-22T02:15:26.5131143Z     PUMP_IPC_READER: spawned
2026-06-22T02:15:26.5132737Z     === W5 A2 CHARACTERIZATION: subscribed=true driven_after_attach=Some("535a6b27767dacb3b64b356a9cec7f03f8d40e02570b30cb95371e4dc142867b") cby_attached=Some(Some("535a6b27767dacb3b64b356a9cec7f03f8d40e02570b30cb95371e4dc142867b")) session_still_listed=true cby_after_abandon=Some(Some("535a6b27767dacb3b64b356a9cec7f03f8d40e02570b30cb95371e4dc142867b")) driven_after_abandon=Some("535a6b27767dacb3b64b356a9cec7f03f8d40e02570b30cb95371e4dc142867b") ===
2026-06-22T02:15:26.5137511Z     === W5 A2 VERDICT: conn-close self-heal observed in-window? false (unix: true ⇒ broker observed the FIN ⇒ controller_by clears = the correct conn-close self-heal, REQ-HAZARD-DRIVEN-BY-SELFHEAL; windows: false ⇒ FIN-detection latency, the ~30s idle-timeout did not land in 2s ⇒ slot reads Some(origin) — a LATENCY divergence, NOT the no-FIN half-open gap, which stays deferred to REQ-HAZARD-DRIVEN-BY-IDLE-REMOTE-EVICT) ===
2026-06-22T02:15:26.5138773Z 
2026-06-22T02:15:26.5139346Z     thread 'w5_a2_abandoned_remote_controller_conn_close_eviction_is_platform_divergent' (4015060) panicked at crates/spt-daemon/tests/inject_control_wedge.rs:1735:9:
2026-06-22T02:15:26.5141042Z     assertion `left == right` failed: A2 (unix): an abandoned remote controller whose loopback conn CLOSES is correctly EVICTED broker-side — the broker observes the FIN within the read window and clears controller_by. The conn-close self-heal (REQ-HAZARD-DRIVEN-BY-SELFHEAL). Got: Some(Some("535a6b27767dacb3b64b356a9cec7f03f8d40e02570b30cb95371e4dc142867b"))
2026-06-22T02:15:26.5142343Z       left: Some(Some("535a6b27767dacb3b64b356a9cec7f03f8d40e02570b30cb95371e4dc142867b"))
2026-06-22T02:15:26.5142710Z      right: Some(None)
2026-06-22T02:15:26.5143006Z     note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
2026-06-22T02:15:26.5143277Z 
2026-06-22T02:15:28.3320164Z         PASS [   1.819s] (74/90) spt-daemon::input_ack_deadlock input_flood_through_serve_attach_does_not_deadlock_broker
2026-06-22T02:15:30.3761634Z         PASS [   2.044s] (75/90) spt-daemon::resume cold_start_resumes_all_sessions_from_the_broker_cursor
2026-06-22T02:15:34.5856239Z         PASS [   4.209s] (76/90) spt-daemon::resume resume_below_ring_floor_clamps_forward_without_gap_error
2026-06-22T02:15:35.4014224Z         PASS [   0.816s] (77/90) spt-daemon::resume resume_mode_brain_spawning_new_sessions_delivers_each
2026-06-22T02:15:35.4725092Z         PASS [   0.071s] (78/90) spt-daemon::shellchan hung_shell_stalls_no_other_owner
2026-06-22T02:15:35.5851157Z         PASS [   0.113s] (79/90) spt-daemon::shellchan stdin_receipt_delivers_spooled_frames_exactly_once
2026-06-22T02:15:35.6602726Z         PASS [   0.075s] (80/90) spt-daemon::two_origin_spanning one_source_two_consumers_spans_and_merges
2026-06-22T02:15:35.6667884Z         PASS [   0.006s] (81/90) spt-daemon::twohost two_host_ladder_role_a
2026-06-22T02:15:35.6726104Z         PASS [   0.006s] (82/90) spt-daemon::twohost two_host_ladder_role_b
2026-06-22T02:15:35.6875127Z         PASS [   0.015s] (83/90) spt-term::dsr drain_forwards_child_output
2026-06-22T02:15:35.7128050Z         PASS [   0.025s] (84/90) spt-term::inject ctrl_c_interrupts_the_child
2026-06-22T02:15:35.7276031Z         PASS [   0.015s] (85/90) spt-term::inject send_line_reaches_child_and_preserves_order
2026-06-22T02:15:36.7337298Z         PASS [   1.006s] (86/90) spt-term::stream bounded_backpressure_stalls_an_unconsumed_reader
2026-06-22T02:15:36.7390094Z         PASS [   0.005s] (87/90) spt-term::stream delivers_every_value_under_resize
2026-06-22T02:15:36.7450138Z         PASS [   0.006s] (88/90) spt-term::surface captures_child_output_off_the_pty
2026-06-22T02:15:36.7499452Z         PASS [   0.005s] (89/90) spt-term::surface resize_under_load_does_not_hang_or_panic
2026-06-22T02:15:36.7550589Z         PASS [   0.005s] (90/90) spt-term::surface spawn_program_in_lands_the_child_in_the_requested_cwd
2026-06-22T02:15:36.7551374Z ────────────
2026-06-22T02:15:36.7551756Z      Summary [ 359.354s] 90 tests run: 89 passed, 1 failed, 0 skipped
2026-06-22T02:15:36.7552390Z         FAIL [   4.074s] (73/90) spt-daemon::inject_control_wedge w5_a2_abandoned_remote_controller_conn_close_eviction_is_platform_divergent
2026-06-22T02:15:36.7583427Z error: test run failed
2026-06-22T02:15:36.7615289Z ##[error]Process completed with exit code 100.
